/**
 2  * zepto插件：向左滑动删除动效
 3  * 使用方法：$('.itemWipe').touchWipe({itemDelete: '.item-delete'});
 4  * 参数：itemDelete  删除按钮的样式名
 5  */
;
(function($) {
$.fn.touchWipe = function(option) {
	var defaults = {
       itemDelete: '.item-delete', //删除元素
    };
    var opts = $.extend({}, defaults, option); //配置选项
 
    var delWidth = $(opts.itemDelete).width();
 
    var initX; //触摸位置
    var moveX; //滑动时的位置
    var X = 0; //移动距离
    var objX = 0; //目标对象位置
    $(this).on('touchstart', function(event) {
       event.preventDefault();
       var obj = this;
       initX = event.targetTouches[0].pageX;
       objX = (obj.style.WebkitTransform.replace(/translateX\(/g, "").replace(/px\)/g, "")) * 1;
       if (objX == 0) {
         $(this).on('touchmove', function(event) {
         event.preventDefault();
           var obj = this;
          moveX = event.targetTouches[0].pageX;
          X = moveX - initX;
          if (X >= 0) {
             obj.style.WebkitTransform = "translateX(" + 0 + "px)";
           } else if (X < 0) {
            var l = Math.abs(X);
             obj.style.WebkitTransform = "translateX(" + -l + "px)";
            if (l > delWidth) {
              l = delWidth;
               obj.style.WebkitTransform = "translateX(" + -l + "px)";
             }
           }
         });
     } else if (objX < 0) {
         $(this).on('touchmove', function(event) {
          event.preventDefault();
         var obj = this;
         moveX = event.targetTouches[0].pageX;
          X = moveX - initX;
         if (X >= 0) {
            var r = -delWidth + Math.abs(X);
            obj.style.WebkitTransform = "translateX(" + r + "px)";
            if (r > 0) {
              r = 0;
              obj.style.WebkitTransform = "translateX(" + r + "px)";
            }
          } else { //向左滑动
            obj.style.WebkitTransform = "translateX(" + -delWidth + "px)";
          }
         });
       }
 
     })
     $(this).on('touchend', function(event) {
       event.preventDefault();
       var obj = this;
       objX = (obj.style.WebkitTransform.replace(/translateX\(/g, "").replace(/px\)/g, "")) * 1;
       if (objX > -delWidth / 2) {
         obj.style.transition = "all 0.2s";
         obj.style.WebkitTransform = "translateX(" + 0 + "px)";
         obj.style.transition = "all 0";
         objX = 0;
      } else {
         obj.style.transition = "all 0.2s";
      obj.style.WebkitTransform = "translateX(" + -delWidth + "px)";
         obj.style.transition = "all 0";
        objX = -delWidth;
       }
     })
 
    //链式返回
    return this;
  };

 })(Zepto);